function _RxEnLogText(msg)
  msg = msg or ''
  local isShow = true
  if isShow then
    RxLog(msg)
  end
end

function RxFindText(title, fonttext, tab, size, deviationColor, istouch)
  if not fonttext then
    _RxEnLogText('RxFindText title='..tostring(title)..'--fonttext=nil 这会导致识别失败')
  end

  if type(fonttext) ~= 'string' or fonttext == '' then
    _RxEnLogText('RxFindText title='..tostring(title)..'--fonttext [ 不是字符串、空串 ] 这会导致识别失败 ')
  end
  local index = addTSOcrDictEx(tab)
  --请自行更改参数
  --1: 0,0,0,0 范围坐标，请自行修改
  --2: "FFFBD4 , 061936" 偏色,多组或单组.请在偏色列表中选择
  --3: 90 匹配精度 【0-100】
  local x1, y1, x2, y2 = size[1], size[2], size[3], size[4]

  local x, y = tsFindText(index, fonttext, x1, y1, x2, y2, deviationColor, 90)
  local ctn = 0
  if x ~= -1 then
    if istouch then
      if title then
        _RxEnLogText('')
        _RxEnLogText("点击_".. title)
      end
      -- dialog('RxFindText x='..x..' y='..y, 1000) --测试
      -- local newX = math.floor((x2 - x1)/2) + x
      -- local newY = math.floor((y2 - y1)/2) + y
      local newX = x + 2
      local newY = y + 2
      _RxEnLogText('RxFindText - click x='..tostring(newX)..'--y='..tostring(newY))
      RxTouch(newX, newY)
    end
    ctn = 1
  end
  _RxEnLogText('RxFindText title='..tostring(title)..' ctn='..tostring(ctn))
  return ctn, x, y, x1, y1
end

function RxFindTextTable(ftable) -- 没有点击事件，仅查找坐标
  if not ftable then
    _RxEnLogText('RxFindTextTable find ftable=nil')
    return 0,-1,-1,-1,-1
  end
  local x1, y1, x2, y2 = RxLocationTableScale(ftable)
  local size = {x1, y1, x2, y2}
  return RxFindText(ftable.title, ftable.font, ftable.tab, size, ftable.deviationColor, false)
end

function RxFindTextTouchTable(ftable) -- 查找坐标，并点击
  if not ftable then
    _RxEnLogText('RxFindTextTouchTable touch ftable=nil')
    return 0,-1,-1,-1,-1
  end
  local x1, y1, x2, y2 = RxLocationTableScale(ftable)
  local size = {x1, y1, x2, y2}
  -- fwTestSize({x1, y1, x2, y2}) -- 测试
  -- fwTestToastSize({x1, y1, x2, y2}) -- 测试
  return RxFindText(ftable.title, ftable.font, ftable.tab, size, ftable.deviationColor, true)
end

function RxFindTextFontOfArrayTables(ftables)
  local ctn, x1, y1, x2, y2, selFont = RxFindTextTouchArrayTables(ftables, false)
  return ctn, x1, y1, selFont
end

function RxFindTextArrayTables(ftables)
  return RxFindTextTouchArrayTables(ftables, false)
end

function RxFindTextTouchArrayTables(ftables, istouch) -- 查找坐标，并点击
  if istouch == nil then
    istouch = true
  end
  local ctn = 0
  local x1, y1, x2, y2 = -1,-1,-1,-1
  local selFont = nil

  local len = RxTable:len(ftables)
  if len == 0 then
    _RxEnLogText('-=-=-=-=-=--=-=-=-=-=-=-=-=-=-= error error error RxFindTextTouchArrayTables ftables=nil')
    return ctn, x1, y1, x2, y2, selFont
  end

  local n = 0
  while true do
    ::__replayStart::
    n = n + 1
    if n > len then
      break
    end
    local ft = ftables[n]
    if not ft then
      _RxEnLogText('RxFindTextTouchArrayTables ftables = nil n='..tostring(n))
      goto __replayStart
    end
    x1, y1, x2, y2 = RxLocationTableScale(ft)
    local size = {x1, y1, x2, y2}
    -- fwTestSize({x1, y1, x2, y2}) -- 测试
    -- fwTestToastSize({x1, y1, x2, y2}) -- 测试
    ctn, x1, y1, x2, y2 = RxFindText(ft.title, ft.font, ft.tab, size, ft.deviationColor, istouch)
    if ctn == 1 then
      selFont = ft
      break
    end
  end
  return ctn, x1, y1, x2, y2,selFont
end